The present invention relates to a packet transfer method and apparatus which perform packet transfer between a plurality of terminals connected to each other through a plurality of networks each serving as one address administration device.
As a packet transfer scheme within one network segment in which one or a plurality of physical media (e.g., cables) are connected through repeaters, bridges, and the like, NetBEUI (Net Extended User Interface) supported by a LAN manager and Windows NT or the like is available.
According to this scheme, network information (e.g., the address of each terminal and packet transfer control information) is basically administered within a segment as one data link unit in Ethernet, token Ring, or the like, and is subjected to centralized administration in each terminal or a server.
In this case, the terminals complying with such a network protocol can communicate with each other with only simple setting in a given segment, but they cannot communicate with terminals in other segments to which the given segment is connected through routers, gateways, and the like.
TCP/IP corresponding to the fourth and third layers of OSI (Open System Interconnection) as the high-level protocol of each segment allows communication between terminals in a plurality of segments connected to each other through routers, gateways, and the like. TCP/IP allows terminals in all network segments to communicate with each other.
In this case, high- and low-level layer addresses for information transfer are administered by servers arranged in units of segments. These servers do not consistently administer the addresses of the terminals connected to the respective segments connected to each other by the high-level protocols, but divide the address space among them, and use the addresses in the respective address spaces, thereby maintaining the consistency of addresses.
In this manner, address administration is performed by offline distributed processing among the segments. For this reason, the following problem is posed. When, for example, an Ip (Internet protocol) packet (to which an IP address as a high-level layer address and an MAC address as a low-level layer address are added) is to be transferred from a terminal A in a given segment to a terminal B in another segment, the server performs routing with respect to the corresponding segment in accordance with the IP address as a key. In this case, the packet data may not be transferred to the terminal B because of noncoincidence between the low-level layer addresses or the repetitive use of the same low-level layer address.
Each network segment independently administers network administration information including the intra-segment addresses of the terminals in the segment, a high-level layer address such as an IP address, communication control information about an interterminal communication scheme such as 1:1 communication or 1:N communication, and the like. For this reason, inter-segment communication between a plurality of segments cannot be easily performed.
Every time a terminal is disconnected from a given network (sub-network) serving as a segment and connected to another sub-network, a new IP address must be set, resulting in poor operability.
In a conventional packet transfer system constituted by a plurality of network protocol layers, when a packet is to be transferred, the high-level layer checks the destination written in the packet header administered by itself to interpret the destination, and writes the destination information required for the low-level layer to transfer the packet to the destination in the header administered by the low-level layer, thereby transferring the packet.
Assume that in a system in which the Ethernet protocol and the Internet protocol (IP) operate as low- and high-level layers, respectively, a packet is to be transferred to all the terminals in a network (sub-network) serving as one segment (data link address administration device). In this case, when the packet is transferred according to an IP address indicating a sub-network as a destination, the packet is actually transferred to Ethernet as the low-level layer with a multicast address indicating intra-segment multicast.
In this case, destinations administered by the two layers, i.e., high- and low-level layers, are generally administered independently. More specifically, when each terminal uses the Ethernet protocol to set an Ethernet address so as to perform network connection, and IP is used as the high-level layer, each terminal must set an IP address and a sub-network address (MAC address). When a high-level multicast IP address is designated in the above manner by setting this IP address, the packet can be transferred to all the terminals in the corresponding Ethernet segment.
In this case, however, every time a terminal is disconnected from a given sub-network and connected to another sub-network, a new IP address must be set, resulting in poor operability.
In IP, DHCP (Dynamic Host Configuration Protocol) is used to solve the above problem. According to this protocol, when a terminal is to be disconnected from a given network and connected to another terminal group through a network, necessary IP address information can be acquired and set in the self-terminal by only outputting a corresponding request to a DHCP server. Therefore, a new IP address need not be set every time the above operation is performed, thus improving the operability. In this case as well, multicasting by an IP address allows only transfer of information to all the terminals constituting one segment such as Ethernet. For this reason, even if the low-level layer supports multicasting with respect to some specific terminals of the terminals constituting the segment, multicasting with respect to these specific terminals cannot be performed. One-to-one transfer must therefore be repeated, as needed. This is because an IP address is constituted by host and network portions, and has a function of transferring information to a designated segment by using the information of the network portion, specifying terminals in the segment by using the host portion, and transferring the packet to the destinations.
In conventional multicast communication, every time the transmission destinations are changed, the multicast address must be changed. For this reason, in an environment in which radio communication is performed, and an information communication device moves, the multicast address frequently changes. For this reason, the communication procedure becomes complicated to lower the communication efficiency, and a server is required to set a multicast address. Multicasting cannot therefore be performed without a server.
In order to solve these problems, the following method is employed. If there is no server for setting a multicast address, a plurality of terminals to which the same information is transmitted are set as a group on the basis of communication link information administered by the respective terminals by decentralized administration. Multicast communication is performed on the basis of the set group. In this method, a group is set after it is checked whether communication links can be established between a plurality of terminals to be registered as a group. When a given communication link is disconnected, the disconnected terminal is omitted from the group. According to this method, however, when the communication link between some terminals of the plurality of terminals belonging to a group is disconnected, a mismatch is caused between the group information administered by the respective terminals.
When a new terminal appears in a network, the new terminal cannot know the state of a group already set. For this reason, when a group including the new terminal is to be set, the new terminal cannot be added to the set group, but a new group must be set.
In conventional data multicast communication, when data transmitted from the transmission side is properly received by the reception sides, the respective reception sides send response information (acknowledgment numbers) indicating the proper reception to the transmission side. If the data is not properly received by a given reception side, the reception side sends response information for requesting retransmission to the transmission side. Upon reception of the response information for requesting retransmission, the transmission side retransmits the same data.
This operation indicates a 1-to-n one-way connection, in which one apparatus transmits data, and a plurality of apparatuses receive the data. If each communication apparatus is to perform two-way communication, connections equal in number to the apparatuses must be established/maintained. In this method, however, since response information is generated for each transmission apparatus, and an acknowledgment packet is transmitted to each transmission apparatus, each acknowledgment packet inevitably contains only one piece of response information. Therefore, with an increase in the number of communication apparatuses, the number of acknowledgment packets flowing in the network increases. This may increase the load on the network.
Assume that a given apparatus has properly received data, but another apparatus has not properly receive the data. In this case, the transmission side retransmits the data. In a conventional method, however, both the apparatus which has properly received the data and the apparatus which has not properly received the data must return response information with respect to the retransmitted data. That is, the transmission side receives the acknowledgment packet with respect to the same data twice from the apparatus which has properly received the first data and the retransmitted data. The unnecessary acknowledgment packet therefore flows in the network, causing congestion in the network.